home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!tektronix!tekgen!tekred!games
- From: games@tekred.TEK.COM
- Newsgroups: comp.sources.games
- Subject: v06i001: sokoban - curses based, get the money game
- Message-ID: <3441@tekred.TEK.COM>
- Date: 3 Jan 89 20:53:15 GMT
- Sender: billr@tekred.TEK.COM
- Reply-To: "H.Bernau" <pyramid!tub!astbe!ber>
- Lines: 2282
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted by: "H.Bernau" <pyramid!tub!astbe!ber>
- Comp.sources.games: Volume 6, Issue 1
- Archive-name: sokoban
-
- [This started out like a simplified game of wanderer with an
- easy screen 1. Then up popped screen 2 - I still haven't
- figured this one out. -br]
-
- From the author:
- [[Here comes one of my favourit games. There are no monsters,
- no traps, no reason to die, no chance to win. But as soon as
- you play, it captures you.
-
- Feel free to reply
- (Within Europe use astbe!ber)
- (From elsewhere try to use ...!pyramid!tub!astbe!ber)]]
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of shell archive."
- # Contents: README Makefile play.c readscreen.c save.c score.c
- # showscreen.c sok.c sokoban.h sokoban.help screen.1 screen.10
- # screen.11 screen.12 screen.13 screen.14 screen.15 screen.16
- # screen.17 screen.18 screen.19 screen.2 screen.20 screen.21
- # screen.22 screen.23 screen.24 screen.25 screen.26 screen.27
- # screen.28 screen.29 screen.3 screen.30 screen.31 screen.32
- # screen.33 screen.34 screen.35 screen.36 screen.37 screen.38
- # screen.39 screen.4 screen.40 screen.41 screen.42 screen.5 screen.6
- # screen.7 screen.8 screen.9
- # Wrapped by billr@saab on Tue Jan 3 12:13:05 1989
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(1607 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- XThis is SOKOBAN.
- X
- XI saw this game first on a PC running MSDOS. I found the idea of the game so
- Xclever, that I made up my mind to make it run with an ascii terminal using
- Xcurses so that we can play it on our MicroVAX/ULTRIX.
- X
- XAlong with this package there are alot of screen files describing the various
- Xplay levels. So what you need to do to install it on your own machine is:
- X
- X- Edit the header file sokoban.h to alter the given defines
- X
- XYou have to note the following restrictions
- X
- X- The screen files must be readable for everyone who should be able to play
- X this game
- X- The score file should have read/write permission only for the owner
- X of the executable program. If you do so sokoban must run with setuid.
- X
- XYou can now compile it (just type 'make').
- XIf compilation is succesful you must initialize the score file (just type
- X'sokoban -c'). If you have forgotten the password, examine sokoban.h.
- X
- XThere is no manual page. All you have to know when you first play the game is
- Xthe command '?'. This gives you one screenful of information.
- X
- XAfter you have solved all the given screens (this will take a while) you will
- Xfind the game boring (sure you will). I hope there will be a lot of players who
- Xwill think out some new screens.
- XTo test your own screens copy them to the screen directory (with a new level
- Xnumber <nn>) and type sokoban -<nn>.
- X
- XPLEASE DO SO AND POST NEW SCREENS TO THE NET.
- XOTHERWISE IT GETS BORING !!!!!!!!!!!!!!!!!!!!
- X
- XComments are welcome.
- X
- XWithin Europe reply to astbe!ber
- X
- XFrom other continents try to use ...!pyramid!tub!astbe!ber
- X (otherwise it would be expensive)
- END_OF_FILE
- if test 1607 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'Makefile'\"
- else
- echo shar: Extracting \"'Makefile'\" \(477 characters\)
- sed "s/^X//" >'Makefile' <<'END_OF_FILE'
- XCCOPT= -g
- XOBJECTS= sok.o readscreen.o showscreen.o play.o save.o score.o
- X
- Xsokoban: $(OBJECTS)
- X cc $(CCOPT) -o sokoban $(OBJECTS) -lcurses -ltermcap
- Xsok.o: sok.c sokoban.h
- X cc $(CCOPT) -c sok.c
- X
- Xreadscreen.o: readscreen.c sokoban.h
- X cc $(CCOPT) -c readscreen.c
- X
- Xshowscreen.o: showscreen.c sokoban.h
- X cc $(CCOPT) -c showscreen.c
- X
- Xplay.o: play.c sokoban.h
- X cc $(CCOPT) -c play.c
- X
- Xsave.o: save.c sokoban.h
- X cc $(CCOPT) -c save.c
- X
- Xscore.o: score.c sokoban.h
- X cc $(CCOPT) -c score.c
- END_OF_FILE
- if test 477 -ne `wc -c <'Makefile'`; then
- echo shar: \"'Makefile'\" unpacked with wrong size!
- fi
- # end of 'Makefile'
- fi
- if test -f 'play.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'play.c'\"
- else
- echo shar: Extracting \"'play.c'\" \(6884 characters\)
- sed "s/^X//" >'play.c' <<'END_OF_FILE'
- X#include <stdio.h>
- X#include <ctype.h>
- X#include <curses.h>
- X#include "sokoban.h"
- X
- X/* defining the types of move */
- X#define MOVE 1
- X#define PUSH 2
- X#define SAVE 3
- X#define UNSAVE 4
- X#define STOREMOVE 5
- X#define STOREPUSH 6
- X
- X/* defines for control characters */
- X#define CNTL_L '\014'
- X#define CNTL_K '\013'
- X#define CNTL_H '\010'
- X#define CNTL_J '\012'
- X#define CNTL_R '\022'
- X#define CNTL_U '\025'
- X
- Xextern char map[MAXROW+1][MAXCOL+1];
- Xextern short rows, cols, level, moves, pushes, savepack, packets;
- Xextern short scorelevel, scoremoves, scorepushes;
- Xextern POS ppos;
- X
- XPOS tpos1, tpos2, /* test positions: 1/2 pos. over/under/left/right */
- X lastppos, /* the last player position (for undo) */
- X lasttpos1, lasttpos2; /* last test positions (for undo) */
- Xchar lppc, ltp1c, ltp2c; /* the char for these positions (for undo) */
- Xshort action, lastaction;
- X
- Xchar tmp_map[MAXROW+1][MAXCOL+1];
- Xshort tmp_pushes, tmp_moves, tmp_savepack;
- XPOS tmp_ppos;
- X
- Xint play() {
- X
- X short c;
- X short ret;
- X short testmove();
- X short undolock = 1; /* locked for undo */
- X
- X showscreen();
- X tmpsave();
- X ret = 0;
- X while( ret == 0) {
- X switch( (c = getchar())) {
- X case 'q': /* quit the game */
- X ret = E_ENDGAME;
- X break;
- X case 's': /* save the games */
- X if( (ret = savegame()) == 0)
- X ret = E_SAVED;
- X break;
- X case '?': /* show the help file */
- X showhelp();
- X showscreen();
- X break;
- X case CNTL_R: /* refresh the screen */
- X clear();
- X showscreen();
- X break;
- X case 'c': /* temporary save */
- X tmpsave();
- X break;
- X case CNTL_U: /* reset to temporary save */
- X tmpreset();
- X undolock = 1;
- X showscreen();
- X break;
- X case 'U': /* undo this level */
- X moves = pushes = 0;
- X if( (ret = readscreen()) == 0) {
- X showscreen();
- X undolock = 1;
- X }
- X break;
- X case 'u': /* undo last move */
- X if( ! undolock) {
- X undomove();
- X undolock = 1;
- X }
- X break;
- X case 'k': /* up */
- X case 'K': /* run up */
- X case CNTL_K: /* run up, stop before object */
- X case 'j': /* down */
- X case 'J': /* run down */
- X case CNTL_J: /* run down, stop before object */
- X case 'l': /* right */
- X case 'L': /* run right */
- X case CNTL_L: /* run right, stop before object */
- X case 'h': /* left */
- X case 'H': /* run left */
- X case CNTL_H: /* run left, stop before object */
- X do {
- X if( (action = testmove( c)) != 0) {
- X lastaction = action;
- X lastppos.x = ppos.x; lastppos.y = ppos.y;
- X lppc = map[ppos.x][ppos.y];
- X lasttpos1.x = tpos1.x; lasttpos1.y = tpos1.y;
- X ltp1c = map[tpos1.x][tpos1.y];
- X lasttpos2.x = tpos2.x; lasttpos2.y = tpos2.y;
- X ltp2c = map[tpos2.x][tpos2.y];
- X domove( lastaction);
- X undolock = 0;
- X }
- X } while( (action != 0) && (! islower( c))
- X && (packets != savepack));
- X break;
- X default: helpmessage(); break;
- X }
- X if( (ret == 0) && (packets == savepack)) {
- X scorelevel = level;
- X scoremoves = moves;
- X scorepushes = pushes;
- X break;
- X }
- X }
- X return( ret);
- X}
- X
- Xshort testmove( action)
- Xshort action;
- X{
- X short ret;
- X char tc;
- X short stop_at_object;
- X
- X if( (stop_at_object = iscntrl( action))) action = action + 'A' - 1;
- X action = (isupper(action) ? tolower( action) : action);
- X if( (action == 'k') || (action == 'j')) {
- X tpos1.x = (action == 'k') ? ppos.x-1 : ppos.x+1;
- X tpos2.x = (action == 'k') ? ppos.x-2 : ppos.x+2;
- X tpos1.y = tpos2.y = ppos.y;
- X }
- X else {
- X tpos1.y = (action == 'h') ? ppos.y-1 : ppos.y+1;
- X tpos2.y = (action == 'h') ? ppos.y-2 : ppos.y+2;
- X tpos1.x = tpos2.x = ppos.x;
- X }
- X tc = map[tpos1.x][tpos1.y];
- X switch( tc) {
- X case C_PACKET:
- X case C_SAVE: if( ! stop_at_object) {
- X if( map[tpos2.x][tpos2.y] == C_GROUND)
- X ret = (tc == C_SAVE) ? UNSAVE : PUSH;
- X else if( map[tpos2.x][tpos2.y] == C_STORE)
- X ret = (tc == C_SAVE) ? STOREPUSH : SAVE;
- X else ret = 0;
- X }
- X else ret = 0; break;
- X case C_GROUND: ret = MOVE; break;
- X case C_STORE: ret = STOREMOVE; break;
- X default: ret = 0; break;
- X }
- X return( ret);
- X}
- X
- Xdomove( moveaction)
- Xshort moveaction;
- X{
- X map[ppos.x][ppos.y] = (map[ppos.x][ppos.y] == C_PLAYER)
- X ? C_GROUND
- X : C_STORE;
- X switch( moveaction) {
- X case MOVE: map[tpos1.x][tpos1.y] = C_PLAYER; break;
- X case STOREMOVE: map[tpos1.x][tpos1.y] = C_PLAYERSTORE; break;
- X case PUSH: map[tpos2.x][tpos2.y] = map[tpos1.x][tpos1.y];
- X map[tpos1.x][tpos1.y] = C_PLAYER;
- X pushes++; break;
- X case UNSAVE: map[tpos2.x][tpos2.y] = C_PACKET;
- X map[tpos1.x][tpos1.y] = C_PLAYERSTORE;
- X pushes++; savepack--; break;
- X case SAVE: map[tpos2.x][tpos2.y] = C_SAVE;
- X map[tpos1.x][tpos1.y] = C_PLAYER;
- X savepack++; pushes++; break;
- X case STOREPUSH: map[tpos2.x][tpos2.y] = C_SAVE;
- X map[tpos1.x][tpos1.y] = C_PLAYERSTORE;
- X pushes++; break;
- X }
- X moves++;
- X dispmoves(); disppushes(); dispsave();
- X mapchar( map[ppos.x][ppos.y], ppos.x, ppos.y);
- X mapchar( map[tpos1.x][tpos1.y], tpos1.x, tpos1.y);
- X mapchar( map[tpos2.x][tpos2.y], tpos2.x, tpos2.y);
- X move( MAXROW+1, 0);
- X refresh();
- X ppos.x = tpos1.x; ppos.y = tpos1.y;
- X}
- X
- Xundomove() {
- X
- X map[lastppos.x][lastppos.y] = lppc;
- X map[lasttpos1.x][lasttpos1.y] = ltp1c;
- X map[lasttpos2.x][lasttpos2.y] = ltp2c;
- X ppos.x = lastppos.x; ppos.y = lastppos.y;
- X switch( lastaction) {
- X case MOVE: moves--; break;
- X case STOREMOVE: moves--; break;
- X case PUSH: moves--; pushes--; break;
- X case UNSAVE: moves--; pushes--; savepack++; break;
- X case SAVE: moves--; pushes--; savepack--; break;
- X case STOREPUSH: moves--; pushes--; break;
- X }
- X dispmoves(); disppushes(); dispsave();
- X mapchar( map[ppos.x][ppos.y], ppos.x, ppos.y);
- X mapchar( map[lasttpos1.x][lasttpos1.y], lasttpos1.x, lasttpos1.y);
- X mapchar( map[lasttpos2.x][lasttpos2.y], lasttpos2.x, lasttpos2.y);
- X move( MAXROW+1, 0);
- X refresh();
- X}
- X
- Xtmpsave() {
- X
- X short i, j;
- X
- X for( i = 0; i < rows; i++) for( j = 0; j < cols; j++)
- X tmp_map[i][j] = map[i][j];
- X tmp_pushes = pushes;
- X tmp_moves = moves;
- X tmp_savepack = savepack;
- X tmp_ppos.x = ppos.x; tmp_ppos.y = ppos.y;
- X}
- X
- Xtmpreset() {
- X
- X short i, j;
- X
- X for( i = 0; i < rows; i++) for( j = 0; j < cols; j++)
- X map[i][j] = tmp_map[i][j];
- X pushes = tmp_pushes;
- X moves = tmp_moves;
- X savepack = tmp_savepack;
- X ppos.x = tmp_ppos.x; ppos.y = tmp_ppos.y;
- X}
- END_OF_FILE
- if test 6884 -ne `wc -c <'play.c'`; then
- echo shar: \"'play.c'\" unpacked with wrong size!
- fi
- # end of 'play.c'
- fi
- if test -f 'readscreen.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'readscreen.c'\"
- else
- echo shar: Extracting \"'readscreen.c'\" \(1364 characters\)
- sed "s/^X//" >'readscreen.c' <<'END_OF_FILE'
- X#include <stdio.h>
- X#include "sokoban.h"
- X
- Xextern short level, packets, savepack, rows, cols;
- Xextern char map[MAXROW+1][MAXCOL+1];
- Xextern POS ppos;
- X
- Xreadscreen()
- X{
- X FILE *screen;
- X char *fnam;
- X short j, c, ret = 0;
- X
- X fnam = malloc( strlen( SCREENPATH) + 11);
- X sprintf( fnam, "%s/screen.%d", SCREENPATH, level);
- X if( (screen = fopen( fnam, "r")) == NULL)
- X ret = E_FOPENSCREEN;
- X else {
- X packets = savepack = rows = j = cols = 0;
- X storepos( ppos, -1, -1);
- X while( (ret == 0) && ((c = getc( screen)) != EOF)) {
- X switch( c) {
- X case '\n': map[rows++][j] = '\0';
- X if( rows > MAXROW)
- X ret = E_TOMUCHROWS;
- X else {
- X if( j > cols) cols = j;
- X j = 0;
- X }
- X break;
- X case C_PLAYERSTORE:
- X case C_PLAYER: if( ppos.x != -1)
- X ret = E_PLAYPOS1;
- X else {
- X storepos( ppos, rows, j);
- X map[rows][j++] = c;
- X if( j > MAXCOL) ret = E_TOMUCHCOLS;
- X }
- X break;
- X case C_SAVE: savepack++;
- X case C_PACKET: packets++;
- X case C_WALL:
- X case C_STORE:
- X case C_GROUND: map[rows][j++] = c;
- X if( j > MAXCOL) ret = E_TOMUCHCOLS;
- X break;
- X default: ret = E_ILLCHAR;
- X }
- X }
- X fclose( screen);
- X if( (ret == 0) && (ppos.x == -1)) ret = E_PLAYPOS2;
- X }
- X return( ret);
- X}
- END_OF_FILE
- if test 1364 -ne `wc -c <'readscreen.c'`; then
- echo shar: \"'readscreen.c'\" unpacked with wrong size!
- fi
- # end of 'readscreen.c'
- fi
- if test -f 'save.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'save.c'\"
- else
- echo shar: Extracting \"'save.c'\" \(3405 characters\)
- sed "s/^X//" >'save.c' <<'END_OF_FILE'
- X#include <stdio.h>
- X#include <sys/types.h>
- X#include <sys/stat.h>
- X#include <signal.h>
- X#include "sokoban.h"
- X
- Xextern char *username;
- Xextern char map[MAXROW+1][MAXCOL+1];
- Xextern short level, moves, pushes, packets, savepack, rows, cols;
- Xextern POS ppos;
- X
- Xlong savedbn;
- Xchar *sfname;
- XFILE *savefile;
- Xstruct stat sfstat;
- X
- Xshort savegame() {
- X
- X short ret = 0;
- X
- X signal( SIGINT, SIG_IGN);
- X sfname = malloc( strlen( SAVEPATH) + strlen( username) + 5);
- X sprintf( sfname, "%s/%s.sav", SAVEPATH, username);
- X if( (savefile = fopen( sfname, "w")) == NULL)
- X ret = E_FOPENSAVE;
- X else {
- X savedbn = fileno( savefile);
- X if( write( savedbn, &(map[0][0]), MAXROW*MAXCOL) != MAXROW*MAXCOL)
- X ret = E_WRITESAVE;
- X else if( write( savedbn, &ppos, sizeof( POS)) != sizeof( POS))
- X ret = E_WRITESAVE;
- X else if( write( savedbn, &level, 2) != 2) ret = E_WRITESAVE;
- X else if( write( savedbn, &moves, 2) != 2) ret = E_WRITESAVE;
- X else if( write( savedbn, &pushes, 2) != 2) ret = E_WRITESAVE;
- X else if( write( savedbn, &packets, 2) != 2) ret = E_WRITESAVE;
- X else if( write( savedbn, &savepack, 2) != 2) ret = E_WRITESAVE;
- X else if( write( savedbn, &rows, 2) != 2) ret = E_WRITESAVE;
- X else if( write( savedbn, &cols, 2) != 2) ret = E_WRITESAVE;
- X else {
- X fclose( savefile);
- X if( stat( sfname, &sfstat) != 0) ret = E_STATSAVE;
- X else if( (savefile = fopen( sfname, "a")) == NULL)
- X ret = E_FOPENSAVE;
- X else {
- X if( write( savedbn, &sfstat, sizeof( sfstat)) != sizeof( sfstat))
- X ret = E_WRITESAVE;
- X fclose( savefile);
- X }
- X }
- X }
- X if( (ret == E_WRITESAVE) || (ret == E_STATSAVE)) unlink( sfname);
- X signal( SIGINT, SIG_DFL);
- X
- X return( ret);
- X}
- X
- Xshort restoregame() {
- X
- X short ret = 0;
- X struct stat oldsfstat;
- X
- X signal( SIGINT, SIG_IGN);
- X sfname = malloc( strlen( SAVEPATH) + strlen( username) + 5);
- X sprintf( sfname, "%s/%s.sav", SAVEPATH, username);
- X if( stat( sfname, &oldsfstat) < -1)
- X ret = E_NOSAVEFILE;
- X else {
- X if( (savefile = fopen( sfname, "r")) == NULL)
- X ret = E_FOPENSAVE;
- X else {
- X savedbn = fileno( savefile);
- X if( read( savedbn, &(map[0][0]), MAXROW*MAXCOL) != MAXROW*MAXCOL)
- X ret = E_READSAVE;
- X else if( read( savedbn, &ppos, sizeof( POS)) != sizeof( POS))
- X ret = E_READSAVE;
- X else if( read( savedbn, &level, 2) != 2) ret = E_READSAVE;
- X else if( read( savedbn, &moves, 2) != 2) ret = E_READSAVE;
- X else if( read( savedbn, &pushes, 2) != 2) ret = E_READSAVE;
- X else if( read( savedbn, &packets, 2) != 2) ret = E_READSAVE;
- X else if( read( savedbn, &savepack, 2) != 2) ret = E_READSAVE;
- X else if( read( savedbn, &rows, 2) != 2) ret = E_READSAVE;
- X else if( read( savedbn, &cols, 2) != 2) ret = E_READSAVE;
- X else if( read( savedbn, &sfstat, sizeof( sfstat)) != sizeof( sfstat))
- X ret = E_READSAVE;
- X else if( (sfstat.st_dev != oldsfstat.st_dev) ||
- X (sfstat.st_ino != oldsfstat.st_ino) ||
- X (sfstat.st_nlink != oldsfstat.st_nlink) ||
- X (sfstat.st_uid != oldsfstat.st_uid) ||
- X (sfstat.st_gid != oldsfstat.st_gid) ||
- X (sfstat.st_mtime != oldsfstat.st_mtime))
- X ret = E_ALTERSAVE;
- X }
- X unlink( sfname);
- X }
- X signal( SIGINT, SIG_DFL);
- X return( ret);
- X}
- END_OF_FILE
- if test 3405 -ne `wc -c <'save.c'`; then
- echo shar: \"'save.c'\" unpacked with wrong size!
- fi
- # end of 'save.c'
- fi
- if test -f 'score.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'score.c'\"
- else
- echo shar: Extracting \"'score.c'\" \(4947 characters\)
- sed "s/^X//" >'score.c' <<'END_OF_FILE'
- X#include <stdio.h>
- X#include <signal.h>
- X#include "sokoban.h"
- X
- Xextern char *username;
- Xextern short scorelevel, scoremoves, scorepushes;
- X
- Xshort scoreentries;
- Xstruct {
- X char user[MAXUSERNAME];
- X short lv, mv, ps;
- X} scoretable[MAXSCOREENTRIES];
- X
- XFILE *scorefile;
- Xlong sfdbn;
- X
- Xshort outputscore() {
- X
- X short ret;
- X
- X while( creat( LOCKFILE) < 0); /* lock the score file */
- X if( (ret = readscore()) == 0)
- X showscore();
- X unlink( LOCKFILE);
- X return( (ret == 0) ? E_ENDGAME : ret);
- X}
- X
- Xshort makenewscore() {
- X
- X short ret = 0;
- X
- X while( creat( LOCKFILE) < 0) ;
- X scoreentries = 0;
- X if( (scorefile = fopen( SCOREFILE, "w")) == NULL)
- X ret = E_FOPENSCORE;
- X else {
- X sfdbn = fileno( scorefile);
- X write( sfdbn, &scoreentries, 2);
- X fclose( scorefile);
- X }
- X unlink( LOCKFILE);
- X return( (ret == 0) ? E_ENDGAME : ret);
- X}
- X
- Xshort getuserlevel( lv)
- Xshort *lv;
- X{
- X short ret = 0, pos;
- X
- X while( creat( LOCKFILE) < 0);
- X if( (scorefile = fopen( SCOREFILE, "r")) == NULL)
- X ret = E_FOPENSCORE;
- X else {
- X if( (ret = readscore()) == 0)
- X *lv = ( (pos = finduser()) > -1) ? scoretable[pos].lv+1 : 1;
- X }
- X unlink( LOCKFILE);
- X return( ret);
- X}
- X
- Xshort score() {
- X
- X short ret;
- X
- X while( creat( LOCKFILE) < 0); /* lock the score file */
- X if( (ret = readscore()) == 0)
- X if( (ret = makescore()) == 0)
- X if( (ret = writescore()) == 0)
- X showscore();
- X unlink( LOCKFILE);
- X return( (ret == 0) ? E_ENDGAME : ret);
- X}
- X
- Xreadscore() {
- X
- X short ret = 0;
- X long tmp;
- X
- X if( (scorefile = fopen( SCOREFILE, "r")) == NULL)
- X ret = E_FOPENSCORE;
- X else {
- X sfdbn = fileno( scorefile);
- X if( read( sfdbn, &scoreentries, 2) != 2) ret = E_READSCORE;
- X else {
- X tmp = scoreentries * sizeof( scoretable[0]);
- X if( read( sfdbn, &(scoretable[0]), tmp) != tmp) ret = E_READSCORE;
- X }
- X fclose( scorefile);
- X }
- X return( ret);
- X}
- X
- Xmakescore() {
- X
- X short ret = 0, pos, i, build = 1, insert;
- X
- X if( (pos = finduser()) > -1) { /* user already in score file */
- X insert = (scorelevel > scoretable[pos].lv)
- X || ( (scorelevel == scoretable[pos].lv) &&
- X (scoremoves < scoretable[pos].mv)
- X )
- X || ( (scorelevel == scoretable[pos].lv) &&
- X (scoremoves == scoretable[pos].mv) &&
- X (scorepushes < scoretable[pos].ps)
- X );
- X if( insert) { /* delete existing entry */
- X for( i = pos; i < scoreentries-1; i++)
- X cp_entry( i, i+1);
- X scoreentries--;
- X }
- X else build = 0;
- X }
- X else if( scoreentries == MAXSCOREENTRIES)
- X ret = E_TOMUCHSE;
- X if( (ret == 0) && build) {
- X pos = findpos(); /* find the new score position */
- X if( pos > -1) { /* score table not empty */
- X for( i = scoreentries; i > pos; i--)
- X cp_entry( i, i-1);
- X }
- X else pos = scoreentries;
- X
- X strcpy( scoretable[pos].user, username);
- X scoretable[pos].lv = scorelevel;
- X scoretable[pos].mv = scoremoves;
- X scoretable[pos].ps = scorepushes;
- X scoreentries++;
- X }
- X return( ret);
- X}
- X
- Xfinduser() {
- X
- X short i, found;
- X
- X for( i = 0; (i < scoreentries) && (! found); i++)
- X found = (strcmp( scoretable[i].user, username) == 0);
- X return( (found) ? i-1 : -1);
- X}
- X
- Xfindpos() {
- X
- X short i, found;
- X
- X for( i = 0; (i < scoreentries) && (! found); i++)
- X found = (scorelevel > scoretable[i].lv)
- X || ( (scorelevel == scoretable[i].lv) &&
- X (scoremoves < scoretable[i].mv)
- X )
- X || ( (scorelevel == scoretable[i].lv) &&
- X (scoremoves == scoretable[i].mv) &&
- X (scorepushes < scoretable[i].ps)
- X );
- X return( (found) ? i-1 : -1);
- X}
- X
- Xwritescore() {
- X
- X short ret = 0;
- X long tmp;
- X
- X if( (scorefile = fopen( SCOREFILE, "w")) == NULL)
- X ret = E_FOPENSCORE;
- X else {
- X sfdbn = fileno( scorefile);
- X if( write( sfdbn, &scoreentries, 2) != 2) ret = E_WRITESCORE;
- X else {
- X tmp = scoreentries * sizeof( scoretable[0]);
- X if( write( sfdbn, &(scoretable[0]), tmp) != tmp) ret = E_WRITESCORE;
- X }
- X fclose( scorefile);
- X }
- X return( ret);
- X}
- X
- Xshowscore() {
- X
- X short lastlv = 0, lastmv, lastps, i;
- X
- X fprintf( stdout, "Rank User Level Moves Pushes\n");
- X fprintf( stdout, "====================================================\n");
- X for( i = 0; i < scoreentries; i++) {
- X if( (scoretable[i].lv == lastlv)&&
- X (scoretable[i].mv == lastmv) &&
- X (scoretable[i].ps == lastps))
- X fprintf( stdout, " ");
- X else {
- X lastlv = scoretable[i].lv;
- X lastmv = scoretable[i].mv;
- X lastps = scoretable[i].ps;
- X fprintf( stdout, "%4d ", i+1);
- X }
- X fprintf( stdout, "%10s %10d %10d %10d\n", scoretable[i].user,
- X scoretable[i].lv, scoretable[i].mv, scoretable[i].ps);
- X }
- X}
- X
- Xcp_entry( i1, i2)
- Xshort i1, i2;
- X{
- X strcpy( scoretable[i1].user, scoretable[i2].user);
- X scoretable[i1].lv = scoretable[i2].lv;
- X scoretable[i1].mv = scoretable[i2].mv;
- X scoretable[i1].ps = scoretable[i2].ps;
- X}
- END_OF_FILE
- if test 4947 -ne `wc -c <'score.c'`; then
- echo shar: \"'score.c'\" unpacked with wrong size!
- fi
- # end of 'score.c'
- fi
- if test -f 'showscreen.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'showscreen.c'\"
- else
- echo shar: Extracting \"'showscreen.c'\" \(2273 characters\)
- sed "s/^X//" >'showscreen.c' <<'END_OF_FILE'
- X#include <curses.h>
- X#include "sokoban.h"
- X
- Xextern short rows, cols, level, moves, pushes, packets, savepack;
- Xextern char map[MAXROW+1][MAXCOL+1];
- X
- Xshowscreen() {
- X
- X short i, j;
- X
- X move( 0, 0); clrtobot();
- X for( i = 0; i < rows; i++)
- X for( j = 0; map[i][j] != '\0'; j++)
- X mapchar( map[i][j], i, j);
- X move( MAXROW, 0);
- X printw( "Level: Packets: Saved: Moves: Pushes:");
- X displevel();
- X disppackets();
- X dispsave();
- X dispmoves();
- X disppushes();
- X move( MAXROW+2,0);
- X refresh();
- X}
- X
- Xmapchar( c, i, j)
- Xchar c;
- Xshort i, j;
- X{
- X short offset_row = (MAXROW - rows) / 2;
- X short offset_col = MAXCOL - cols;
- X
- X move( i + offset_row, 2*j + offset_col); addch( c);
- X move( i + offset_row, 2*j + 1 + offset_col); addch( c);
- X}
- X
- Xdisplevel() {
- X move( MAXROW, 7); printw( "%3d", level);
- X}
- X
- Xdisppackets() {
- X move( MAXROW, 21); printw( "%3d", packets);
- X}
- X
- Xdispsave() {
- X move( MAXROW, 33); printw( "%3d", savepack);
- X}
- X
- Xdispmoves() {
- X move( MAXROW, 45); printw( "%10d", moves);
- X}
- X
- Xdisppushes() {
- X move( MAXROW, 65); printw( "%10d", pushes);
- X}
- X
- Xhelpmessage() {
- X move( MAXROW+2, 0); printw( "Press ? for help.%c", '\007');
- X refresh();
- X raw(); /* no input allowed while sleeping */
- X sleep( 2);
- X move( MAXROW+2, 0); deleteln();
- X refresh();
- X noraw(); /* end raw mode */
- X}
- X
- Xshowhelp() {
- X
- X FILE *helpfile;
- X char buf[80];
- X short i, ret = 0, endhelp = 0, c;
- X
- X if( (helpfile = fopen( HELPFILE, "r")) == NULL)
- X ret = E_FOPENHELP;
- X else {
- X raw();
- X move( 0, 0); clrtobot();
- X i = 0;
- X while( fgets( buf, 80, helpfile) && (! endhelp)) {
- X if( strncmp( buf, "+=", 2) == 0) { /* page eject */
- X move( 23, 0);
- X addstr( "(Press space to continue, return to exit help)");
- X refresh();
- X noraw();
- X if( (c = getchar()) == '\n')
- X endhelp = 1;
- X else {
- X i = 0;
- X move( 0, 0); clrtobot();
- X refresh();
- X raw();
- X }
- X }
- X else if( strncmp( buf, "==", 2) == 0) { /* end of helpfile */
- X move( 23, 0);
- X addstr( "(Press any key to continue)");
- X refresh();
- X noraw();
- X getchar();
- X endhelp = 1;
- X }
- X else {
- X move( i, 0);
- X addstr( buf);
- X i++;
- X }
- X }
- X }
- X return( ret);
- X}
- END_OF_FILE
- if test 2273 -ne `wc -c <'showscreen.c'`; then
- echo shar: \"'showscreen.c'\" unpacked with wrong size!
- fi
- # end of 'showscreen.c'
- fi
- if test -f 'sok.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'sok.c'\"
- else
- echo shar: Extracting \"'sok.c'\" \(4668 characters\)
- sed "s/^X//" >'sok.c' <<'END_OF_FILE'
- X#include <stdio.h>
- X#include <curses.h>
- X#include "sokoban.h"
- X
- Xshort level, packets, savepack, moves, pushes, rows, cols;
- Xshort scorelevel, scoremoves, scorepushes;
- Xchar map[MAXROW+1][MAXCOL+1];
- XPOS ppos;
- Xchar *username, *prgname;
- X
- Xshort optshowscore = 0, optmakescore = 0, optrestore = 0, optlevel = 0;
- Xshort scoring = 1, superuser = 0;
- Xshort userlevel;
- X
- Xmain( argc, argv)
- Xshort argc;
- Xchar *argv[];
- X{
- X short ret, ret2;
- X char *strrchr(), *getlogin();
- X
- X scorelevel = 0;
- X moves = pushes = packets = savepack = 0;
- X if( (prgname = strrchr( argv[0], '/')) == NULL)
- X prgname = argv[0];
- X else prgname++;
- X if( (username = getlogin("SOKNAM")) == NULL)
- X ret = E_NOUSER;
- X else {
- X superuser = (strcmp( username, SUPERUSER) == 0);
- X if( (ret = checkcmdline( argc, argv)) == 0) {
- X if( optshowscore)
- X ret = outputscore();
- X else if( optmakescore) {
- X if( superuser) {
- X if( (ret = getpassword()) == 0)
- X ret = makenewscore();
- X }
- X else ret = E_NOSUPER;
- X }
- X else if( optrestore) {
- X ret = restoregame();
- X }
- X else if( (ret = getuserlevel( &userlevel)) == 0) {
- X if( optlevel > 0) {
- X if( superuser) {
- X level = optlevel;
- X scoring = 0;
- X }
- X else if( userlevel < optlevel)
- X ret = E_LEVELTOOHIGH;
- X else level = optlevel;
- X }
- X else level = userlevel;
- X }
- X }
- X }
- X if( ret == 0)
- X ret = gameloop();
- X errmess( ret);
- X if( scorelevel && scoring) {
- X ret2 = score();
- X errmess( ret2);
- X }
- X exit( ret);
- X}
- X
- Xcheckcmdline( argc, argv)
- Xshort argc;
- Xchar *argv[];
- X{
- X short ret = 0;
- X
- X if( argc > 1)
- X if( (argc == 2) && (argv[1][0] == '-')) {
- X if( (argv[1][1] == 's') && (argv[1][2] == '\0'))
- X optshowscore = 1;
- X else if( (argv[1][1] == 'c') && (argv[1][2] == '\0'))
- X optmakescore = 1;
- X else if( (argv[1][1] == 'r') && (argv[1][2] == '\0'))
- X optrestore = 1;
- X else if( (optlevel = atoi( &(argv[1][1]))) == 0)
- X ret = E_USAGE;
- X }
- X else ret = E_USAGE;
- X return( ret);
- X}
- X
- Xgameloop() {
- X
- X short ret = 0;
- X
- X initscr(); crmode(); noecho();
- X if( ! optrestore) ret = readscreen();
- X while( ret == 0) {
- X if( (ret = play()) == 0) {
- X level++;
- X moves = pushes = packets = savepack = 0;
- X ret = readscreen();
- X }
- X }
- X move( 0, 0); clrtobot(); refresh();
- X nocrmode(); echo(); erase(); endwin();
- X return( ret);
- X}
- X
- Xgetpassword() {
- X
- X short c, i;
- X char *p, *getpass();
- X
- X p = getpass( "Password: ");
- X return( (strcmp( p, PASSWORD) == 0) ? 0 : E_ILLPASSWORD);
- X}
- X
- Xchar *message[] = {
- X "illegal error number",
- X "cannot open screen file",
- X "more than one player position in screen file",
- X "illegal char in screen file",
- X "no player position in screenfile",
- X "too much rows in screen file",
- X "too much columns in screenfile",
- X "quit the game",
- X "cannot open the help file",
- X "cannot get your username",
- X "cannot open savefile",
- X "error writing to savefile",
- X "cannot stat savefile",
- X "error reading savefile",
- X "cannot restore, your savefile has been altered",
- X "game saved",
- X "too much users in score table",
- X "cannot open score file",
- X "error reading scorefile",
- X "error writing scorefile",
- X "illegal command line syntax",
- X "illegal password",
- X "level number too big in command line",
- X "only superuser is allowed to make a new score table",
- X "cannot find file to restore"
- X};
- X
- Xerrmess( ret)
- Xshort ret;
- X{
- X if( ret != E_ENDGAME) {
- X fprintf( stderr, "%s: ", prgname);
- X switch( ret) {
- X case E_FOPENSCREEN: case E_PLAYPOS1: case E_ILLCHAR:
- X case E_PLAYPOS2: case E_TOMUCHROWS: case E_TOMUCHCOLS:
- X case E_ENDGAME: case E_FOPENHELP: case E_NOUSER:
- X case E_FOPENSAVE: case E_WRITESAVE: case E_STATSAVE:
- X case E_READSAVE: case E_ALTERSAVE: case E_SAVED:
- X case E_TOMUCHSE: case E_FOPENSCORE: case E_READSCORE:
- X case E_WRITESCORE: case E_USAGE: case E_ILLPASSWORD:
- X case E_LEVELTOOHIGH: case E_NOSUPER: case E_NOSAVEFILE:
- X fprintf( stderr, "%s\n", message[ret]);
- X break;
- X default: fprintf( stderr, "%s\n", message[0]);
- X break;
- X }
- X if( ret == E_USAGE) usage();
- X }
- X}
- X
- Xusage() {
- X
- X fprintf( stderr, "Usage: %s [-{s|c|r|<nn>}]\n\n", prgname);
- X fprintf( stderr, " -c: create new score table (superuser only)\n");
- X fprintf( stderr, " -r: restore saved game\n");
- X fprintf( stderr, " -s: show score table\n");
- X fprintf( stderr, " -<nn>: play this level (<nn> must be greater 0)\n");
- X}
- END_OF_FILE
- if test 4668 -ne `wc -c <'sok.c'`; then
- echo shar: \"'sok.c'\" unpacked with wrong size!
- fi
- # end of 'sok.c'
- fi
- if test -f 'sokoban.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'sokoban.h'\"
- else
- echo shar: Extracting \"'sokoban.h'\" \(2518 characters\)
- sed "s/^X//" >'sokoban.h' <<'END_OF_FILE'
- X/***********************************************************************
- X You may wish to alter the following directory paths
- X***********************************************************************/
- X/**/
- X/* SCREENPATH: the name of the directioy where the screen file are held */
- X/**/
- X#define SCREENPATH "/usr/games/lib/sokoban/screens"
- X
- X/**/
- X/* HELPFILE: the full pathname of the helpfile */
- X/**/
- X#define HELPFILE "/usr/games/lib/sokoban/sokoban.help"
- X
- X/**/
- X/* SAVEPATH: the name of the path where save files are held */
- X/* Attention: Be sure that there are no other files with */
- X/* the name <username>.sav */
- X/**/
- X#define SAVEPATH "/usr/games/lib/sokoban"
- X
- X/**/
- X/* LOCKPATH: temporary file which is created to ensure that no users */
- X/* work with the scorefile at the same time */
- X/**/
- X#define LOCKFILE "/tmp/sok.lock"
- X
- X/**/
- X/* SCOREFILE: the full pathname of the score file */
- X/**/
- X#define SCOREFILE "/usr/games/lib/sokoban/sok.score"
- X
- X/**/
- X/* MAXUSERNAME: defines the maximum length of a system's user name */
- X/**/
- X#define MAXUSERNAME 10
- X
- X/**/
- X/* MAXSCOREENTRIES: defines the maximum numner of entries in the scoretable */
- X/**/
- X#define MAXSCOREENTRIES 50
- X
- X/**/
- X/* SUPERUSER: defines the name of the game superuser */
- X/**/
- X#define SUPERUSER "root"
- X
- X/**/
- X/* PASSWORD: defines the password necessary for creating a new score file */
- X/**/
- X#define PASSWORD "nabokos"
- X
- X/*************************************************************************
- X********************** DO NOT CHANGE BELOW THIS LINE *********************
- X*************************************************************************/
- X#define C_PLAYER '@'
- X#define C_PLAYERSTORE '+'
- X#define C_WALL '#'
- X#define C_GROUND ' '
- X#define C_STORE '.'
- X#define C_PACKET '$'
- X#define C_SAVE '*'
- X
- X#define MAXROW 20
- X#define MAXCOL 40
- X
- Xtypedef struct {
- X short x, y;
- X} POS;
- X
- Xchar *malloc();
- XFILE *fopen();
- X
- X#define storepos( p, a, b) p.x = a; p.y = b;
- X
- X#define E_FOPENSCREEN 1
- X#define E_PLAYPOS1 2
- X#define E_ILLCHAR 3
- X#define E_PLAYPOS2 4
- X#define E_TOMUCHROWS 5
- X#define E_TOMUCHCOLS 6
- X#define E_ENDGAME 7
- X#define E_FOPENHELP 8
- X#define E_NOUSER 9
- X#define E_FOPENSAVE 10
- X#define E_WRITESAVE 11
- X#define E_STATSAVE 12
- X#define E_READSAVE 13
- X#define E_ALTERSAVE 14
- X#define E_SAVED 15
- X#define E_TOMUCHSE 16
- X#define E_FOPENSCORE 17
- X#define E_READSCORE 18
- X#define E_WRITESCORE 19
- X#define E_USAGE 20
- X#define E_ILLPASSWORD 21
- X#define E_LEVELTOOHIGH 22
- X#define E_NOSUPER 23
- X#define E_NOSAVEFILE 24
- END_OF_FILE
- if test 2518 -ne `wc -c <'sokoban.h'`; then
- echo shar: \"'sokoban.h'\" unpacked with wrong size!
- fi
- # end of 'sokoban.h'
- fi
- if test -f 'sokoban.help' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'sokoban.help'\"
- else
- echo shar: Extracting \"'sokoban.help'\" \(1236 characters\)
- sed "s/^X//" >'sokoban.help' <<'END_OF_FILE'
- X
- X S O K O B A N
- X
- X The problem is to push packets to saving positions by moving around
- X and pushing only one packet at a time if possible.
- X
- X
- X Available Commands are:
- X
- X h: move/push left H: run/push left ^H: run left to object
- X l: move/push right L: run/push right ^L: run right to object
- X j: move/push down J: run/push down ^J: run down to object
- X k: move/push up K: run/push up ^K: run up to object
- X
- X u: undo last move/push U: undo all
- X
- X c: temporary save ^U: reset to temporary save
- X
- X ^R: Refresh screen
- X
- X q: quit s: save the game ?: this help screen
- X+= (DO NOT CHANGE OR DELETE THIS LINE)
- X
- X Characters on screen are:
- X
- X @@ player ++ player on saving position
- X .. saving position for packet $$ packets
- X ** saved packet ## wall
- X
- X
- X As you could see you can make a temporary save. This is useful if you think
- X that all the moves/pushes you have made are correct, but you don't know how
- X to go on. In this case you can temporary save (using the c command). If you
- X then get stucked you need not undo all (using U), you can reset to you
- X temporary save.
- X
- X If you have restored a saved game, a temporary save is automatically made
- X at the start.
- X== (DO NOT CHANGE THIS LINE)
- END_OF_FILE
- if test 1236 -ne `wc -c <'sokoban.help'`; then
- echo shar: \"'sokoban.help'\" unpacked with wrong size!
- fi
- # end of 'sokoban.help'
- fi
- if test -f 'screen.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.1'\"
- else
- echo shar: Extracting \"'screen.1'\" \(164 characters\)
- sed "s/^X//" >'screen.1' <<'END_OF_FILE'
- X #####
- X # #
- X #$ #
- X ### $##
- X # $ $ #
- X### # ## # ######
- X# # ## ##### ..#
- X# $ $ ..#
- X##### ### #@## ..#
- X # #########
- X #######
- END_OF_FILE
- if test 164 -ne `wc -c <'screen.1'`; then
- echo shar: \"'screen.1'\" unpacked with wrong size!
- fi
- # end of 'screen.1'
- fi
- if test -f 'screen.10' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.10'\"
- else
- echo shar: Extracting \"'screen.10'\" \(320 characters\)
- sed "s/^X//" >'screen.10' <<'END_OF_FILE'
- X ### #############
- X##@#### # #
- X# $$ $$ $ $ ...#
- X# $$$# $ #...#
- X# $ # $$ $$ #...#
- X### # $ #...#
- X# # $ $ $ #...#
- X# ###### ###...#
- X## # # $ $ #...#
- X# ## # $$ $ $##..#
- X# ..# # $ #.#
- X# ..# # $$$ $$$ #.#
- X##### # # #.#
- X # ######### #.#
- X # #.#
- X ###############
- END_OF_FILE
- if test 320 -ne `wc -c <'screen.10'`; then
- echo shar: \"'screen.10'\" unpacked with wrong size!
- fi
- # end of 'screen.10'
- fi
- if test -f 'screen.11' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.11'\"
- else
- echo shar: Extracting \"'screen.11'\" \(223 characters\)
- sed "s/^X//" >'screen.11' <<'END_OF_FILE'
- X ####
- X #### # #
- X ### @###$ #
- X ## $ #
- X ## $ $$## ##
- X # #$## #
- X # # $ $$ # ###
- X # $ # # $ #####
- X#### # $$ # #
- X#### ## $ #
- X#. ### ########
- X#.. ..# ####
- X#...#.#
- X#.....#
- X#######
- END_OF_FILE
- if test 223 -ne `wc -c <'screen.11'`; then
- echo shar: \"'screen.11'\" unpacked with wrong size!
- fi
- # end of 'screen.11'
- fi
- if test -f 'screen.12' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.12'\"
- else
- echo shar: Extracting \"'screen.12'\" \(226 characters\)
- sed "s/^X//" >'screen.12' <<'END_OF_FILE'
- X################
- X# #
- X# # ###### #
- X# # $ $ $ $# #
- X# # $@$ ## ##
- X# # $ $ $###...#
- X# # $ $ ##...#
- X# ###$$$ $ ##...#
- X# # ## ##...#
- X##### ## ##...#
- X ##### ###
- X # #
- X #######
- END_OF_FILE
- if test 226 -ne `wc -c <'screen.12'`; then
- echo shar: \"'screen.12'\" unpacked with wrong size!
- fi
- # end of 'screen.12'
- fi
- if test -f 'screen.13' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.13'\"
- else
- echo shar: Extracting \"'screen.13'\" \(236 characters\)
- sed "s/^X//" >'screen.13' <<'END_OF_FILE'
- X #########
- X ## ## #####
- X### # # ###
- X# $ #$ # # ... #
- X# # $#@$## # #.#. #
- X# # #$ # . . #
- X# $ $ # # #.#. #
- X# ## ##$ $ . . #
- X# $ # # #$#.#. #
- X## $ $ $ $... #
- X #$ ###### ## #
- X # # ##########
- X ####
- END_OF_FILE
- if test 236 -ne `wc -c <'screen.13'`; then
- echo shar: \"'screen.13'\" unpacked with wrong size!
- fi
- # end of 'screen.13'
- fi
- if test -f 'screen.14' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.14'\"
- else
- echo shar: Extracting \"'screen.14'\" \(284 characters\)
- sed "s/^X//" >'screen.14' <<'END_OF_FILE'
- X #######
- X ####### #
- X # # $@$ #
- X #$$ # #########
- X # ###......## #
- X # $......## # #
- X # ###...... #
- X## #### ### #$##
- X# #$ # $ # #
- X# $ $$$ # $## #
- X# $ $ ###$$ # #
- X##### $ # #
- X ### ### # #
- X # # #
- X ######## #
- X ####
- END_OF_FILE
- if test 284 -ne `wc -c <'screen.14'`; then
- echo shar: \"'screen.14'\" unpacked with wrong size!
- fi
- # end of 'screen.14'
- fi
- if test -f 'screen.15' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.15'\"
- else
- echo shar: Extracting \"'screen.15'\" \(229 characters\)
- sed "s/^X//" >'screen.15' <<'END_OF_FILE'
- X #######
- X # # #
- X # $ #
- X ### #$ ####
- X # $ ##$ #
- X # # @ $ # $#
- X # # $ ####
- X ## ####$## #
- X # $#.....# # #
- X # $..**. $# ###
- X## #.....# #
- X# ### #######
- X# $$ # #
- X# # #
- X###### #
- X #####
- END_OF_FILE
- if test 229 -ne `wc -c <'screen.15'`; then
- echo shar: \"'screen.15'\" unpacked with wrong size!
- fi
- # end of 'screen.15'
- fi
- if test -f 'screen.16' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.16'\"
- else
- echo shar: Extracting \"'screen.16'\" \(185 characters\)
- sed "s/^X//" >'screen.16' <<'END_OF_FILE'
- X#####
- X# ##
- X# # ####
- X# $ #### #
- X# $$ $ $#
- X###@ #$ ##
- X # ## $ $ ##
- X # $ ## ## .#
- X # #$##$ #.#
- X ### $..##.#
- X # #.*...#
- X # $$ #.....#
- X # #########
- X # #
- X ####
- END_OF_FILE
- if test 185 -ne `wc -c <'screen.16'`; then
- echo shar: \"'screen.16'\" unpacked with wrong size!
- fi
- # end of 'screen.16'
- fi
- if test -f 'screen.17' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.17'\"
- else
- echo shar: Extracting \"'screen.17'\" \(213 characters\)
- sed "s/^X//" >'screen.17' <<'END_OF_FILE'
- X ##########
- X #.. # #
- X #.. #
- X #.. # ####
- X ####### # ##
- X # #
- X # # ## # #
- X#### ## #### ##
- X# $ ##### # #
- X# # $ $ # $ #
- X# @$ $ # ##
- X#### ## #######
- X # #
- X ######
- END_OF_FILE
- if test 213 -ne `wc -c <'screen.17'`; then
- echo shar: \"'screen.17'\" unpacked with wrong size!
- fi
- # end of 'screen.17'
- fi
- if test -f 'screen.18' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.18'\"
- else
- echo shar: Extracting \"'screen.18'\" \(249 characters\)
- sed "s/^X//" >'screen.18' <<'END_OF_FILE'
- X ###########
- X # . # #
- X # #. @ #
- X ##### ##..# ####
- X## # ..### ###
- X# $ #... $ # $ #
- X# .. ## ## ## #
- X####$##$# $ # # #
- X ## # #$ $$ # #
- X # $ # # # $## #
- X # #
- X # ########### #
- X #### ####
- END_OF_FILE
- if test 249 -ne `wc -c <'screen.18'`; then
- echo shar: \"'screen.18'\" unpacked with wrong size!
- fi
- # end of 'screen.18'
- fi
- if test -f 'screen.19' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.19'\"
- else
- echo shar: Extracting \"'screen.19'\" \(258 characters\)
- sed "s/^X//" >'screen.19' <<'END_OF_FILE'
- X ######
- X # @####
- X##### $ #
- X# ## ####
- X# $ # ## #
- X# $ # ##### #
- X## $ $ # #
- X## $ $ ### # #
- X## # $ # # #
- X## # #$# # #
- X## ### # # ######
- X# $ #### # #....#
- X# $ $ ..#.#
- X####$ $# $ ....#
- X# # ## ....#
- X###################
- END_OF_FILE
- if test 258 -ne `wc -c <'screen.19'`; then
- echo shar: \"'screen.19'\" unpacked with wrong size!
- fi
- # end of 'screen.19'
- fi
- if test -f 'screen.2' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.2'\"
- else
- echo shar: Extracting \"'screen.2'\" \(148 characters\)
- sed "s/^X//" >'screen.2' <<'END_OF_FILE'
- X############
- X#.. # ###
- X#.. # $ $ #
- X#.. #$#### #
- X#.. @ ## #
- X#.. # # $ ##
- X###### ##$ $ #
- X # $ $ $ $ #
- X # # #
- X ############
- END_OF_FILE
- if test 148 -ne `wc -c <'screen.2'`; then
- echo shar: \"'screen.2'\" unpacked with wrong size!
- fi
- # end of 'screen.2'
- fi
- if test -f 'screen.20' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.20'\"
- else
- echo shar: Extracting \"'screen.20'\" \(303 characters\)
- sed "s/^X//" >'screen.20' <<'END_OF_FILE'
- X ##########
- X##### ####
- X# # $ #@ #
- X# #######$#### ###
- X# # ## # #$ ..#
- X# # $ # # #.#
- X# # $ # #$ ..#
- X# # ### ## #.#
- X# ### # # #$ ..#
- X# # # #### #.#
- X# #$ $ $ #$ ..#
- X# $ # $ $ # #.#
- X#### $### #$ ..#
- X # $$ ###....#
- X # ## ######
- X ########
- END_OF_FILE
- if test 303 -ne `wc -c <'screen.20'`; then
- echo shar: \"'screen.20'\" unpacked with wrong size!
- fi
- # end of 'screen.20'
- fi
- if test -f 'screen.21' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.21'\"
- else
- echo shar: Extracting \"'screen.21'\" \(209 characters\)
- sed "s/^X//" >'screen.21' <<'END_OF_FILE'
- X#########
- X# #
- X# ####
- X## #### # #
- X## #@## #
- X# $$$ $ $$#
- X# # ## $ #
- X# # ## $ ####
- X#### $$$ $# #
- X # ## ....#
- X # # # #.. .#
- X # # # ##...#
- X ##### $ #...#
- X ## #####
- X #####
- END_OF_FILE
- if test 209 -ne `wc -c <'screen.21'`; then
- echo shar: \"'screen.21'\" unpacked with wrong size!
- fi
- # end of 'screen.21'
- fi
- if test -f 'screen.22' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.22'\"
- else
- echo shar: Extracting \"'screen.22'\" \(311 characters\)
- sed "s/^X//" >'screen.22' <<'END_OF_FILE'
- X##### ####
- X# ####### #####
- X# $# # $ # #
- X# $ $ $ # $ $ #
- X##$ $ # @# $ #
- X# $ ########### ##
- X# # #.......# $#
- X# ## # ......# #
- X# # $........$ #
- X# # $ #.... ..# #
- X# $ $####$#### $#
- X# $ ### $ $ ##
- X# $ $ $ $ #
- X## ###### $ ##### #
- X# # #
- X###################
- END_OF_FILE
- if test 311 -ne `wc -c <'screen.22'`; then
- echo shar: \"'screen.22'\" unpacked with wrong size!
- fi
- # end of 'screen.22'
- fi
- if test -f 'screen.23' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.23'\"
- else
- echo shar: Extracting \"'screen.23'\" \(254 characters\)
- sed "s/^X//" >'screen.23' <<'END_OF_FILE'
- X #######
- X # # ####
- X##### $#$ # ##
- X#.. # # # #
- X#.. # $#$ # $####
- X#. # #$ # #
- X#.. $# # $ #
- X#..@# #$ #$ # #
- X#.. # $# $# #
- X#.. # #$$#$ # ##
- X#.. # $# # $#$ #
- X#.. # # # # #
- X##. #### ##### #
- X #### #### #####
- END_OF_FILE
- if test 254 -ne `wc -c <'screen.23'`; then
- echo shar: \"'screen.23'\" unpacked with wrong size!
- fi
- # end of 'screen.23'
- fi
- if test -f 'screen.24' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.24'\"
- else
- echo shar: Extracting \"'screen.24'\" \(305 characters\)
- sed "s/^X//" >'screen.24' <<'END_OF_FILE'
- X###############
- X#.......... .####
- X#..........$$.# #
- X###########$ # ##
- X# $ $ $ #
- X## #### # $ # #
- X# # ## # ##
- X# $# # ## ### ##
- X# $ #$### ### ##
- X### $ # # ### ##
- X### $ ## # # ##
- X # $ # $ $ $ #
- X # $ $#$$$ # #
- X # # $ #####
- X # @## # # #
- X #############
- END_OF_FILE
- if test 305 -ne `wc -c <'screen.24'`; then
- echo shar: \"'screen.24'\" unpacked with wrong size!
- fi
- # end of 'screen.24'
- fi
- if test -f 'screen.25' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.25'\"
- else
- echo shar: Extracting \"'screen.25'\" \(295 characters\)
- sed "s/^X//" >'screen.25' <<'END_OF_FILE'
- X####
- X# ##############
- X# # ..#......#
- X# # # ##### ...#
- X##$# ........#
- X# ##$###### ####
- X# $ # ######@ #
- X##$ # $ ###### #
- X# $ #$$$## #
- X# # #$#$###
- X# #### #$$$$$ #
- X# # $ # #
- X# # ## ###
- X# ######$###### $ #
- X# # # #
- X########## #####
- END_OF_FILE
- if test 295 -ne `wc -c <'screen.25'`; then
- echo shar: \"'screen.25'\" unpacked with wrong size!
- fi
- # end of 'screen.25'
- fi
- if test -f 'screen.26' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.26'\"
- else
- echo shar: Extracting \"'screen.26'\" \(177 characters\)
- sed "s/^X//" >'screen.26' <<'END_OF_FILE'
- X #######
- X # # #####
- X## # #...###
- X# $# #... #
- X# $ #$$ ... #
- X# $# #... .#
- X# # $########
- X##$ $ $ #
- X## # $$ # #
- X ###### ##$$@#
- X # ##
- X ########
- END_OF_FILE
- if test 177 -ne `wc -c <'screen.26'`; then
- echo shar: \"'screen.26'\" unpacked with wrong size!
- fi
- # end of 'screen.26'
- fi
- if test -f 'screen.27' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.27'\"
- else
- echo shar: Extracting \"'screen.27'\" \(248 characters\)
- sed "s/^X//" >'screen.27' <<'END_OF_FILE'
- X #################
- X #... # # ##
- X##..... $## # #$ #
- X#......# $ # #
- X#......# # # # #
- X######### $ $ $ #
- X # #$##$ ##$##
- X ## $ # $ #
- X # ## ### # ##$ #
- X # $ $$ $ $ #
- X # $ $##$ ######
- X ####### @ ##
- X ######
- END_OF_FILE
- if test 248 -ne `wc -c <'screen.27'`; then
- echo shar: \"'screen.27'\" unpacked with wrong size!
- fi
- # end of 'screen.27'
- fi
- if test -f 'screen.28' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.28'\"
- else
- echo shar: Extracting \"'screen.28'\" \(258 characters\)
- sed "s/^X//" >'screen.28' <<'END_OF_FILE'
- X #####
- X ##### #
- X ## $ $ ####
- X##### $ $ $ ##.#
- X# $$ ##..#
- X# ###### ###.. #
- X## # # #... #
- X# $ # #... #
- X#@ #$ ## ####...#
- X#### $ $$ ##..#
- X ## $ $ $...#
- X # $$ $ # .#
- X # $ $ ####
- X ###### #
- X #####
- END_OF_FILE
- if test 258 -ne `wc -c <'screen.28'`; then
- echo shar: \"'screen.28'\" unpacked with wrong size!
- fi
- # end of 'screen.28'
- fi
- if test -f 'screen.29' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.29'\"
- else
- echo shar: Extracting \"'screen.29'\" \(228 characters\)
- sed "s/^X//" >'screen.29' <<'END_OF_FILE'
- X#####
- X# ##
- X# $ #########
- X## # # ######
- X## # $#$#@ # #
- X# # $ # $ #
- X# ### ######### ##
- X# ## ..*..... # ##
- X## ## *.*..*.* # ##
- X# $########## ##$ #
- X# $ $ $ $ #
- X# # # # # #
- X###################
- END_OF_FILE
- if test 228 -ne `wc -c <'screen.29'`; then
- echo shar: \"'screen.29'\" unpacked with wrong size!
- fi
- # end of 'screen.29'
- fi
- if test -f 'screen.3' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.3'\"
- else
- echo shar: Extracting \"'screen.3'\" \(164 characters\)
- sed "s/^X//" >'screen.3' <<'END_OF_FILE'
- X ########
- X # @#
- X # $#$ ##
- X # $ $#
- X ##$ $ #
- X######### $ # ###
- X#.... ## $ $ #
- X##... $ $ #
- X#.... ##########
- X########
- END_OF_FILE
- if test 164 -ne `wc -c <'screen.3'`; then
- echo shar: \"'screen.3'\" unpacked with wrong size!
- fi
- # end of 'screen.3'
- fi
- if test -f 'screen.30' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.30'\"
- else
- echo shar: Extracting \"'screen.30'\" \(270 characters\)
- sed "s/^X//" >'screen.30' <<'END_OF_FILE'
- X ###########
- X # # #
- X##### # $ $ #
- X# ##### $## # ##
- X# $ ## # ## $ #
- X# $ @$$ # ##$$$ #
- X## ### # ## #
- X## # ### #####$#
- X## # $ #....#
- X# ### ## $ #....##
- X# $ $ # #..$. #
- X# ## $ # ##.... #
- X##### ######...##
- X ##### #####
- END_OF_FILE
- if test 270 -ne `wc -c <'screen.30'`; then
- echo shar: \"'screen.30'\" unpacked with wrong size!
- fi
- # end of 'screen.30'
- fi
- if test -f 'screen.31' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.31'\"
- else
- echo shar: Extracting \"'screen.31'\" \(236 characters\)
- sed "s/^X//" >'screen.31' <<'END_OF_FILE'
- X ####
- X # #########
- X ## ## # #
- X # $# $@$ ####
- X #$ $ # $ $# ##
- X## $## #$ $ #
- X# # # # $$$ #
- X# $ $ $## ####
- X# $ $ #$# # #
- X## ### ###$ #
- X # #.... #
- X ####......####
- X #....####
- X #...##
- X #...#
- X #####
- END_OF_FILE
- if test 236 -ne `wc -c <'screen.31'`; then
- echo shar: \"'screen.31'\" unpacked with wrong size!
- fi
- # end of 'screen.31'
- fi
- if test -f 'screen.32' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.32'\"
- else
- echo shar: Extracting \"'screen.32'\" \(189 characters\)
- sed "s/^X//" >'screen.32' <<'END_OF_FILE'
- X ####
- X ##### #
- X ## $#
- X## $ ## ###
- X#@$ $ # $ #
- X#### ## $#
- X #....#$ $ #
- X #....# $#
- X #.... $$ ##
- X #... # $ #
- X ######$ $ #
- X # ###
- X #$ ###
- X # #
- X ####
- END_OF_FILE
- if test 189 -ne `wc -c <'screen.32'`; then
- echo shar: \"'screen.32'\" unpacked with wrong size!
- fi
- # end of 'screen.32'
- fi
- if test -f 'screen.33' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.33'\"
- else
- echo shar: Extracting \"'screen.33'\" \(195 characters\)
- sed "s/^X//" >'screen.33' <<'END_OF_FILE'
- X############
- X## ## #
- X## $ $ #
- X#### ## $$ #
- X# $ # #
- X# $$$ # ####
- X# # # $ ##
- X# # # $ #
- X# $# $# #
- X# ..# ####
- X####.. $ #@#
- X#.....# $# #
- X##....# $ #
- X###..## #
- X############
- END_OF_FILE
- if test 195 -ne `wc -c <'screen.33'`; then
- echo shar: \"'screen.33'\" unpacked with wrong size!
- fi
- # end of 'screen.33'
- fi
- if test -f 'screen.34' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.34'\"
- else
- echo shar: Extracting \"'screen.34'\" \(203 characters\)
- sed "s/^X//" >'screen.34' <<'END_OF_FILE'
- X #########
- X #.... ##
- X #.#.# $ ##
- X##....# # @##
- X# ....# # ##
- X# #$ ##$ #
- X## ### $ #
- X #$ $ $ $# #
- X # # $ $ ## #
- X # ### ## #
- X # ## ## ##
- X # $ # $ #
- X ###$ $ ###
- X # #####
- X ####
- END_OF_FILE
- if test 203 -ne `wc -c <'screen.34'`; then
- echo shar: \"'screen.34'\" unpacked with wrong size!
- fi
- # end of 'screen.34'
- fi
- if test -f 'screen.35' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.35'\"
- else
- echo shar: Extracting \"'screen.35'\" \(298 characters\)
- sed "s/^X//" >'screen.35' <<'END_OF_FILE'
- X############ ######
- X# # # ###....#
- X# $$# @ .....#
- X# # ### # ....#
- X## ## ### # ....#
- X # $ $ # # ####
- X # $ $## # #
- X#### # #### # ## #
- X# # #$ ## # #
- X# $ $ # ## # ##
- X# # $ $ # # #
- X# $ ## ## # #####
- X# $$ $$ #
- X## ## ### $ #
- X # # # #
- X ###### ######
- END_OF_FILE
- if test 298 -ne `wc -c <'screen.35'`; then
- echo shar: \"'screen.35'\" unpacked with wrong size!
- fi
- # end of 'screen.35'
- fi
- if test -f 'screen.36' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.36'\"
- else
- echo shar: Extracting \"'screen.36'\" \(289 characters\)
- sed "s/^X//" >'screen.36' <<'END_OF_FILE'
- X #####
- X##### ###### #
- X# #### $ $ $ #
- X# $ ## ## ## ##
- X# $ $ $ $ #
- X### $ ## ## ##
- X # ##### #####$$ #
- X ##$##### @## #
- X # $ ###$### $ ##
- X # $ # ### ###
- X # $$ $ # $$ #
- X # # ## #
- X #######.. .###
- X #.........#
- X #.........#
- X ###########
- END_OF_FILE
- if test 289 -ne `wc -c <'screen.36'`; then
- echo shar: \"'screen.36'\" unpacked with wrong size!
- fi
- # end of 'screen.36'
- fi
- if test -f 'screen.37' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.37'\"
- else
- echo shar: Extracting \"'screen.37'\" \(272 characters\)
- sed "s/^X//" >'screen.37' <<'END_OF_FILE'
- X###########
- X#...... #########
- X#...... # ## #
- X#..### $ $ #
- X#... $ $ # ## #
- X#...#$##### # #
- X### # #$ #$ #
- X # $$ $ $ $## #
- X # $ #$#$ ##$ #
- X ### ## # ## #
- X # $ $ ## ######
- X # $ $ #
- X ## # # #
- X #####@#####
- X ###
- END_OF_FILE
- if test 272 -ne `wc -c <'screen.37'`; then
- echo shar: \"'screen.37'\" unpacked with wrong size!
- fi
- # end of 'screen.37'
- fi
- if test -f 'screen.38' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.38'\"
- else
- echo shar: Extracting \"'screen.38'\" \(120 characters\)
- sed "s/^X//" >'screen.38' <<'END_OF_FILE'
- X ####
- X####### @#
- X# $ #
- X# $## $#
- X##$#...# #
- X # $... #
- X # #. .# ##
- X # # #$ #
- X #$ $ #
- X # #######
- X ####
- END_OF_FILE
- if test 120 -ne `wc -c <'screen.38'`; then
- echo shar: \"'screen.38'\" unpacked with wrong size!
- fi
- # end of 'screen.38'
- fi
- if test -f 'screen.39' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.39'\"
- else
- echo shar: Extracting \"'screen.39'\" \(291 characters\)
- sed "s/^X//" >'screen.39' <<'END_OF_FILE'
- X ######
- X #############....#
- X## ## ##....#
- X# $$## $ @##....#
- X# $$ $# ....#
- X# $ ## $$ # # ...#
- X# $ ## $ # ....#
- X## ##### ### ##.###
- X## $ $ ## . #
- X# $### # ##### ###
- X# $ # #
- X# $ #$ $ $### #
- X# $$$# $ # ####
- X# # $$ #
- X###### ###
- X #####
- END_OF_FILE
- if test 291 -ne `wc -c <'screen.39'`; then
- echo shar: \"'screen.39'\" unpacked with wrong size!
- fi
- # end of 'screen.39'
- fi
- if test -f 'screen.4' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.4'\"
- else
- echo shar: Extracting \"'screen.4'\" \(230 characters\)
- sed "s/^X//" >'screen.4' <<'END_OF_FILE'
- X ########
- X # ....#
- X############ ....#
- X# # $ $ ....#
- X# $$$#$ $ # ....#
- X# $ $ # ....#
- X# $$ #$ $ $########
- X# $ # #
- X## #########
- X# # ##
- X# $ ##
- X# $$#$$ @#
- X# # ##
- X###########
- END_OF_FILE
- if test 230 -ne `wc -c <'screen.4'`; then
- echo shar: \"'screen.4'\" unpacked with wrong size!
- fi
- # end of 'screen.4'
- fi
- if test -f 'screen.40' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.40'\"
- else
- echo shar: Extracting \"'screen.40'\" \(248 characters\)
- sed "s/^X//" >'screen.40' <<'END_OF_FILE'
- X ############
- X # ##
- X # # #$$ $ #
- X #$ #$# ## @#
- X ## ## # $ # ##
- X # $ #$ # #
- X # # $ # #
- X ## $ $ ## #
- X # # ## $ #
- X # ## $$# #
- X######$$ # #
- X#....# ########
- X#.#... ##
- X#.... #
- X#.... #
- X#########
- END_OF_FILE
- if test 248 -ne `wc -c <'screen.40'`; then
- echo shar: \"'screen.40'\" unpacked with wrong size!
- fi
- # end of 'screen.40'
- fi
- if test -f 'screen.41' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.41'\"
- else
- echo shar: Extracting \"'screen.41'\" \(286 characters\)
- sed "s/^X//" >'screen.41' <<'END_OF_FILE'
- X #####
- X ## ##
- X ## #
- X ## $$ #
- X ## $$ $ #
- X # $ $ #
- X#### # $$ #####
- X# ######## ## #
- X#. $$$@#
- X#.# ####### ## ##
- X#.# #######. #$ $##
- X#........... # #
- X############## $ #
- X ## ##
- X ####
- END_OF_FILE
- if test 286 -ne `wc -c <'screen.41'`; then
- echo shar: \"'screen.41'\" unpacked with wrong size!
- fi
- # end of 'screen.41'
- fi
- if test -f 'screen.42' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.42'\"
- else
- echo shar: Extracting \"'screen.42'\" \(233 characters\)
- sed "s/^X//" >'screen.42' <<'END_OF_FILE'
- X ########
- X #### ######
- X # ## $ $ @#
- X # ## ##$#$ $ $##
- X### ......# $$ ##
- X# ......# # #
- X# # ......#$ $ #
- X# #$...... $$# $ #
- X# ### ###$ $ ##
- X### $ $ $ $ #
- X # $ $ $ $ #
- X ###### ######
- X #####
- END_OF_FILE
- if test 233 -ne `wc -c <'screen.42'`; then
- echo shar: \"'screen.42'\" unpacked with wrong size!
- fi
- # end of 'screen.42'
- fi
- if test -f 'screen.5' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.5'\"
- else
- echo shar: Extracting \"'screen.5'\" \(223 characters\)
- sed "s/^X//" >'screen.5' <<'END_OF_FILE'
- X #####
- X # #####
- X # #$## #
- X # $ #
- X######### ### #
- X#.... ## $ $###
- X#.... $ $$ ##
- X#.... ##$ $ @#
- X######### $ ##
- X # $ $ #
- X ### ## #
- X # #
- X ######
- END_OF_FILE
- if test 223 -ne `wc -c <'screen.5'`; then
- echo shar: \"'screen.5'\" unpacked with wrong size!
- fi
- # end of 'screen.5'
- fi
- if test -f 'screen.6' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.6'\"
- else
- echo shar: Extracting \"'screen.6'\" \(142 characters\)
- sed "s/^X//" >'screen.6' <<'END_OF_FILE'
- X###### ###
- X#.. # ##@##
- X#.. ### #
- X#.. $$ #
- X#.. # # $ #
- X#..### # $ #
- X#### $ #$ #
- X # $# $ #
- X # $ $ #
- X # ## #
- X #########
- END_OF_FILE
- if test 142 -ne `wc -c <'screen.6'`; then
- echo shar: \"'screen.6'\" unpacked with wrong size!
- fi
- # end of 'screen.6'
- fi
- if test -f 'screen.7' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.7'\"
- else
- echo shar: Extracting \"'screen.7'\" \(153 characters\)
- sed "s/^X//" >'screen.7' <<'END_OF_FILE'
- X #####
- X ####### ##
- X## # @## $$ #
- X# $ #
- X# $ ### #
- X### #####$###
- X# $ ### ..#
- X# $ $ $ ...#
- X# ###...#
- X# $$ # #...#
- X# ### #####
- X####
- END_OF_FILE
- if test 153 -ne `wc -c <'screen.7'`; then
- echo shar: \"'screen.7'\" unpacked with wrong size!
- fi
- # end of 'screen.7'
- fi
- if test -f 'screen.8' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.8'\"
- else
- echo shar: Extracting \"'screen.8'\" \(226 characters\)
- sed "s/^X//" >'screen.8' <<'END_OF_FILE'
- X ####
- X # ###########
- X # $ $ $ #
- X # $# $ # $ #
- X # $ $ # #
- X### $# # #### #
- X#@#$ $ $ ## #
- X# $ #$# # #
- X# $ $ $ $ #
- X #### #########
- X # #
- X # #
- X #......#
- X #......#
- X #......#
- X ########
- END_OF_FILE
- if test 226 -ne `wc -c <'screen.8'`; then
- echo shar: \"'screen.8'\" unpacked with wrong size!
- fi
- # end of 'screen.8'
- fi
- if test -f 'screen.9' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'screen.9'\"
- else
- echo shar: Extracting \"'screen.9'\" \(240 characters\)
- sed "s/^X//" >'screen.9' <<'END_OF_FILE'
- X #######
- X # ...#
- X ##### ...#
- X # . .#
- X # ## ...#
- X ## ## ...#
- X ### ########
- X # $$$ ##
- X ##### $ $ #####
- X## #$ $ # #
- X#@ $ $ $ $ #
- X###### $$ $ #####
- X # #
- X ########
- END_OF_FILE
- if test 240 -ne `wc -c <'screen.9'`; then
- echo shar: \"'screen.9'\" unpacked with wrong size!
- fi
- # end of 'screen.9'
- fi
- echo shar: End of shell archive.
- exit 0
-